Trt
[i!D[)(g[^(^
TTIMIl 6502 JOOJI^IM^IL
(
NO a [L)^^ ^^^^^la 9^ $r50
QUICK CHANGE ARTISTRY
ENGINEERED SPECIFICALLY FOR
THE KIM-1 MICRO COMPUTER
• Protection of Chips and
Other Components
• Viewing Angle of Readout
Enhanced
• Improved Keyboard Position
for Easier Opef at ion
EASILY ASSEMBLED
• Absolutely No
Alteration of KlM-1 Required
• All Fasteners Provided
• Goes Together In Minutes
witfi a Small Screwdriver
ATTRACTIVE FUNCTIONAL PACKAGE
• Professionaf Appearance
• FourColorCombinations
• I m proves Man/Machine Interface
MADE OF HIGH IMPACT STRENGTH
THERMOFORMED PLASTIC
• Kydex 100-5'
« Durable
• Motded'ln Cotor
■ Non-Conductive
AVAILABLE FROM STOCK
• Al^iow Two to Ti^ree Weeks for
Processing and Delivery
• No COD'S Please
• Dealer Inquiries invited
■S
TO ORDER: 1. FMlin this Coupon (Print or Tyi>e Please)
2. Attach Check or Money Order and Mail to:
ZIP
PJease Ship Prepaid SKE M(s}
@ $23.50 Each
California Residents please pay
$25.03 (Includes Sales Tax)
TM Hohm &. Haas
the
enclosures
group
55 st« Vinson, san f randisco 941 05 — .
iJi
Coiof Desired blue D beige D ^^
blacJ< a white D
patent Appli^ For
i>w
^[l(^^(i)
DECEMBER 1977/JANUARY 1978
ISSUE NUMBER TWO
Making Music with the KIM-1 3
by Armand L. Camus - How to write music for a DAC, with the complete
score for "Deck the Halls with Boughs of Holly"
Writing for MICRO - A Brief Note 7
Mixing Apples and Oranges - An Editorial 8
Meet the PET 9
by Charles Floto - An owner's view of the PET 2001
Digital-Analog and Analog-Digital Conversion Using the KIM-1 11
by Marvin L. DeJong - Experiments with a KIM-1 controlled DAC/ADC
MICRO Reviews: The First Book of KIM 14
The PET Vs. the TRS-80 17
by Bob Wallace - A feature-by-feature comparison
Ludwig von Apple II 19
by Marc Schwartz - How to write music for the APPLE II
MICROBES - Tiny Bugs in Previous MICRO 22
The Challenge of the OSI Challenger 23
by Joel Henkel - An owner's impressions of the OSI Challenger
Improving Keyboard Reliability 25
by MOS Technology - A hardware modification for your KIM-1
Important Addresses of KIM-1 and Monitor 27
by William Dial - A Programmer's Reference Card for the KIM-1
CGRS Microtech
The COMPUTERIST
Computer Playground
Computer Shop
the enclosures group
Advertisers Index
8 F&D Associates 22
2 JADE CO 20,21
16 MICRO Subscription Form 25
26 Pyramid Data Systems 8
IFC Riverside Electronics 22
Subscription Rate: $6.00 per year (six issues) in U.S.A.
MICRO is published bimonthly by The COMPUTERIST, 8 Fourth Lane
So. Chelmsford, MA 01824. Robert M. Tripp, Editor/Publisher.
Controlled circulation postage paid at Chelmsford, Massachusetts.
Copyright 1977 by The COMPUTERIST. All Rights Reserved.
Deadline for February/March 1978 issue: January 15, 1978.
^
2:1
/
lllll
t
'/^
MEMORY PLUS
I for KIH/I'I
TM
/
^JIJ
8K ram - 2102 Low Power Static RAM
8K EPROM - INTEL 2716 Erasable PROM
VERSATILE INTERFACE ADAPTER - MOS Technology 6522
\S* EPROM PROGRAMMER
fl' ON-BOARD VOLTAGE REGULATORS
socketted for easy replacement in the field
Provision for battery backup on the RAMs
Same size and shape as the KIM-1 ^V\
May be simply mounted directly beneath the KIM-1
Uses the same connections as the KIM-2/KIM-
FULLY ASSEMBLED AND TESTED <
Price: $245.00 '
[With everything except the INTEL 2716 EPROMs
\k INTEL 2716 2K EPROMS: $50.00 ^
978
11
Deliveries starting: January 3f 1
For more information and our complete KIMWARE
Send a Self-Addressed, Stamped Envelope
Catalog,
to:
d
III!
till
The COMPUTERIST
P.O. Box 3
S Chelmsford, MA 01824
Or Call:
III
617/256-3649
[Dealer Inquiries Invited]
ITIMII
inn
f ^ Y • '^ • f
II
mt
III!
II
i^
Making Music with the KIM-1
Armand L. Camus
P.O. Box 294
Westford, MA 01886
What kind of music can you make with the help
of a microcomputer, namely the KIM-1 with its
I.IK bytes of memory? Well, it certainly will
not sound like the Boston Symphony Orchestra,
live or on records, but with the right type of
music it will give an acceptable rendition of a
chosen piece of music. Many elements of good
music will be missing, especially the timbre of
the different instruments of the orchestra, but
on the positive side the notes will be on tune,
you will be able to compose in four-part har-
mony, the tempo will be adjustable, and the
whole process will permit some of the artistic
creativity which may hide in each of us to
emerge to the surface. Last, but not least, it will
be a lot of fun.
This elementary article explains the "HOW-TO"
rather than the "WHY" in making music with a
microcomputer. Many of the hobbyists who
may find it too simple may refer to the excellent
article by Hal Chamberlin which dwells in detail
on the subject.
An easy way for the beginner to start his
musical career is to acquire a minimum of
equipment besides the KIM-1 and cassette re-
corder it is assumed are already in his posses-
sion.
The DAC unit is a printed circuit board con-
taining a complete audio output system for the
KIM-1. This board also comes with a cassette
tape, an instruction sheet listing the songs which
can be loaded in the KIM, and a reprint of the
reference article including the interconnections
to be made between the two connectors.
Now that we have described the hardware we
will concentrate on what to do in order to get
some music out of the system. The simplest way
at this time is to load File 1 and File 2 of the
tape and to see if the Star Spangled Banner
comes out clear and patriotic. The procedure is
simple:
J KIMA
□D
Con>men>
Jl, J2 connectors: Vector R644, Winchester
HKD2250, or equivalent. J2 will be too long,
but will work just the same.
Speaker, 2^/2", 8 ohm, 0.3W, from Radio Shack,
or equivalent.
DAC Digital-to-analog converter from THE
COMPUTERIST, P.O. Box 3, S. Chelmsford,
MA 01824 or MTU, P.O. Box 4596, Manchester,
NH 03103.
^
2:3
l^3(S^(Dl
sv
start the KIM-1
keys to get:
and press the appropriate
AD OOFl DA 00
AD 17F9 DA 01
AD 1873 Press -GO
Start the cassette until you get 0000 in the
address display, which indicates that the load-
ing was done properly. After stopping the
cassette, press the keys to get:
AD 17F9 DA 02
AD 1873 Press GO
Start the cassette again until you get 0000.
Stop the cassette. Now you are ready. Press
AD 0100, press GO and the song will be
played. As it stops, the program resets the
address AD to 0100, so by pressing GO again,
the song will repeat itself.
In the same manner you could load Files 3 and 4
to get a rendition of Exodus. The sound quality
may be changed by loading File 5 or File 6. Per-
sonally, I prefer File 6 which has a much
more mellow timbre.
Transcribing A Song
Now that we have gone through the above
steps, we will learn to code a song. For our
purpose, a particular note of music will have
two characteristic elements:
its pitch, represented by its position on the
staff
its duration, relative to other notes.
What we mean is that a half note lasts twice as
long as a quarter note, a quarter note lasts twice
as long as an eighth note, etc. . . We are not talk-
ing about tempo yet, this will come later.
1. Duration Code:
We will assign a two-digit code to the
duration of a note:
o = FF d=80 J-=60 J
J.=30 J*=20 J^=IO
= 40
i
rSi-Q. 1>^
2. Pitch Code
^ Q o bo Q ^ I^I
Norm c 5 55 P flt G"
COOe 6Z 60 SK SC SR Se
Gfc F E E£> p pb C
5*6 rtf 52. 50 A.E f|.C h-ti
#
:t^=
:*
-Q-
T-r-
3SC
^O o ^o^
8 &1> P Rl> G
<f8 <t>6 1*^ <f>2. t^o
Gt F r
3e 3C 5«
fff> P
38 56
Pb C
3«^ 32.
Q f>Q G y G r : \
S^
-^a-
-©-
:^x
j > o o i:^^
Ntfre c
6 6I> A
3o lE^ 2C
nt> G Gl> F e Eh O Pb
2R 28 26 l<f 2^ '2o I C IC
§1
Cfe P Pi > c
jo:
Q >Q o J>o-
oc oc o^
08 06 04- 02.
c
Cope ifl
'8
6l> P
16 m-
nb G
(^ 10
2:4
^
With the help of this lookup table we can find
quickly the code for any note within the limits
of C6 and C2, the high and low C's. However,
the very low notes may not be reproduced too
well with a small speaker and it may not be ad-
visable to go below C3 (Code lA).
3. Coding A Song:
The program given at the end of this article is a
coding of the well-known carol "Deck The Halls",
which we thought would be appropriate for this
issue. [Editor's Note: It inspired this issue's
cover!] If you look at this coding, you will
observe that it is done line by line. Each line is
composed of six elements. For example, the
first line is :
0200 60 4A 44 32 24
- the 0200 is the memory address of the
element 60. The next element, 4A, would
then have an address 0201, and so on.
- the 60 is the duration of the group of four
notes which follow. A 60 means a dotted
quarter note.
- the 4A is the note C, for the first voice.
- the 44 is the note A, for the second voice.
- the 32 is the note C, for the third voice.
- the 24 is the note F, for the fourth voice.
This is an F major chord which could be re-
presented as in (1), and it corresponds to the
word "DECK" of the song.
Now we will code the first bar of the song.
Remember that each line will have the same
format:
address (4 digits), duration (2 digits), 1st
voice (2 digits), 2nd voice (2 digits), 3rd
voice (2 digits), £ind 4th voice (2 digits) for
a total of fourteen (14) digits. If a voice is
quiet, use 00 at the appropriate location.
The first vertical group of notes (C,A,C,F)
corresponding to the word "DECK" has al-
ready been explained above.
The second vertical group of notes correspond-
ing to the word "THE" is made of B flat, G, C,
and E. Looking up the pitch code table, we find
the following codes:
Bb = 46, G = 40, C = 32, and E = 22. Each
note is an eighth note so the duration code is
20. The address of the duration code is 0205
so our second line will be:
0205 20 46 40 32 22
In the same fashion the two other vertical groups
are made of quarter notes (code 40) and we get
for the first bar:
0200 60 4A 44 32 24 (DECK)
0205 20 46 40 32 22 (THE)
020A 40 44 3C 32 24 (HALLS)
020F 40 40 3A 2E lA (WITH)
oecK
QCCK TM6 HALLS WiTH
U- ^ ^ J
y, r- IT r ^
J. J.-J J
^ T T r
Remember that there is a Key Signature in this
carol and that all the B's, wherever located on
the staff, are flat, unless otherwise indicated,
which explains the 46 of the second line and the
2E of the fourth line.
Another part of that song is shown in the ex-
ample (3). The first voice plays two notes (A
and B natural), while the other voices play
only one. We solve this problem by writing two
lines, one for the A and one for the B natural,
repeating the other notes to extend their dura-
tion to a quarter note. We get:
02D2 20 44 3C 32 24
02D7 20 48 aC 32 24
Both A note (code 44) and B natural note
(code 48) have only the duration of one eighth
note each (code 20), and we have to write two
^
2:5
separate lines for them, but the three other
notes will be repeated so that their total dura-
tion is a quarter note. Fortunately, the lower
notes, even when repeated, will blend together
and sound more like a quarter note than two
consecutive eighth notes.
Now we should be able to code a song, but as a
preliminary exercise, you may want to load
"Deck the Halls" and see how it works out. Here
is the procedure :
Load Files 01 and 02 of the DAC tape, as ex-
plained at the beginning of this article. You may
also want to load File 06 to give a more mellow
timbre. Then go to address 0200 and start in-
putting the data. The addresses in the left side
give you a check on your progress and catch
possible omissions of data. What we are doing
here is using the main program and writing over
the song already in memory. At any time it is
possible to go back to AD 0100, push GO and
listen to what is already in memory. Somewhere
at about 2/3 of the song, we run out of memory
(0200 to 02F9), but we have enough left to tell
our microcomputer that it is the end of that
particular segment (02FA 01), and that we wish
to continue at address 0083 (02FB and 02FC).
At the very end, check address OODD 00. The
data 00 indicates the end of the piece and this
will reset the KIM-1 to address 0100, ready to
"GO", so to speak.
After you have loaded the code and pushed the
GO key, the carol should start, sounding good if
no mistake was made, but perhaps a little bit
on the slow side. To change the tempo, either
way, go to address OQID and the data will pro-
bably show 60. Change the data to 40, go back
to address 0100, push GO and the tempo will be
much faster. Experiment with the data at AD
OOID and find the tempo you prefer.
I have found out that while I am coding I like to
listen to what is already in memory, because a
simple mistake at the beginning, especially for-
getting one voice or the duration code, will
throw the rest out of whack. Starting the song
at the beginning, when it is already correct is
a waste of time, but it is possible to start the
song at some other point. However, it must
always be at one of the duration addresses
shown at the end of this article. If not, the
KIM-1 would interpret the duration code as a
musical note and vice-versa! The starting ad-
dress is contained in locations 0017 and 0018.
To start, for example, at address 0237, go to
address 0017 read 00, 0018 read 02. This means
that the song normally starts at 0200. All we
have to do is change the data to read :
AD 0017 DA 37
AD 0018 DA 02
Then setting address 0100 and pushing GO will
cause the song to start at location 0237 every-
time.
Available Memory
The memory available to the user is divided in
two groups, each group not necessarily in con-
secutive order. First group is associated with the
music program, frequency table or the notes,
KIM, etc. . . Second group is associated with the
song. The actual layout of the memory is as
follows:
Program variables
Note frequency table
Song, second part
KIM variables
Music program
Song, third part
6502 Stack
Song, first part
Waveform (voice) table
Song, fourth part
If your music score extends beyond the first
part locations, you have to provide room for
continuation. Assuming a score uses all of the
available memory space for coding a song, the
following locations are important:
0000 to
OOIE
001 F to
0082
0083 to
OOEE
OOEF to
OOFF
0100 to
OlAA
01 AB to
01 F3
01 F4 to
01 FF
0200 to
02FF
0300 to
03FF
1780 to
17E4
Use of Location
Parti
Part 2
Part 3
Part 4
Beginning of Part (Song)
Beginning of Last Line
Last note of Last Line
End of Sequence (Song)
Low Address Next Segment
High Address Next Segment
Reference: Chamberlin, Hal, "A Sampling of Techniques for Computer Perform-
ance of Music", BYTE Magazine, Sept. 1977, pp. 62-83.
0200
0083
OlAB
1780
02F5
00E7
OlEC
17DF
02F9
OOEB
OlFO
17E3
02FA(01)
OOEC (01)
OlFl (01)
17E4 (00)
02FB(83)
OOED (AB)
01F2 (80)
02FC (00)
OOEE (01)
01F3(17)
^
2:6
0200:
0205:
020A:
020F:
02U:
0219:
021E:
0223:
2 2 8:
022D:
0232:
0237:
023C:
0241 :
0246:
024B:
0250:
0255:
025A:
025F:
0264:
0269:
026E:
0273:
0278:
027D:
0282:
0287 :
028C:
0291 :
0296:
029B:
02A0:
02A5:
02AA:
02AF:
02B4:
60
20
40
40
40
40
40
40
20
20
20
20
60
20
40
40
80
60
20
40
40
40
40
40
40
20
20
20
20
60
20
40
40
80
60
20
40
4A
k^i
44
40
3C
40
44
3C
40
44
46
40
44
40
3C
3A
3C
62
5E
5C
58
54
58
5C
54
58
5C
5E
58
5C
58
54
52
54
40
44
46
4^
40
3C
3A
32
3A
3C
32
3A
3C
40
3A
3C
36
32
32
32
5C
58
54
52
4E
52
54
4A
52
54
58
52
54
4E
4A
4A
4A
3A
3C
40
I
3X
3V
32
2E
2C
32
32
2C
32
32
32
32
32
2E
2C
28
2C
32
32
32
2E
2C
32
32
2C
32
32
32
32
32
2E
2C
28
2C
32
32
32
52
22
24
1A
IE
1A
24
24
1A
1A
1A
1A
24
16
1A
1A
24
24
22
24
1A
IE
1A
24
24
1A
1A
1A
1A
24
16
1A
1A
24
1A
1A
1A
Score for "Deck the HaUs"
02B9
02BE
02C3
02C8
02CD
02D2
02D7
02DC
02E1
02E6
02EB
02F0
02F5
02FA
02FB
02FC
0083
0088
008D
0092
0097
009C
00A1
00A6
OOAB
OOBO
00B5
OOBA
OOBF
00C4
00C9
OOCE
00D3
00D8
OODD
Writing for MICRO
MICRO is interested in all aspects of microcomputers based on the 6502 micro-
processor family. Our primary coverage is aimed at factual, useful information.
This may be "How To" articles, useful programs and subroutines, descriptions of
working applications, special interest groups such as Hams, reviews of products
and literature, technical tutorials, and so forth. Authors will receive a small
honorium plus reprints of their article. Help spread the 6502 word.
^
2:7
^v
Mixing Apples and Oranges
An Editorial
Often you have heard the injunction against mixing apples and oranges. MICRO
proposes that we ignore the warning and mix APPLEs (I and II) with PETs, KIMs,
Challengers, CGRS Microtechs, JOLTs, homebrews, and any other 6502 family based
microcomputers. The hope is that mixing these devices together will help to
show the similarities between them that are inherent by reason of their common
microprocessor. This is the passive role of MICRO. The active role of MICRO is
to promote commonality among these microcomputers. How about establishing a
standard assembler syntax (since the MOS Technology syntax is so horrible)?
How about defining some standard subroutines and subroutine calling sequences
so that it will be easier to adapt programs from one machine to run on another?
Would it be possible to develop some standard cassette tape format which would
permit tapes generated by one microcomputer to be read into another? Wouldn't
it be nice if the 6502 based BASICs, Disk Operating Systems, and other high
level software was compatible across machines? Maybe it is only a dream, but
maybe it isn't too late to seriously attempt to maximize the impact of the 6502
based systems by setting some standards so that the various 6502 systems can
combine to strengthen our position in the micro world rather than weaken it by
producing incompatible hardware and software. 6502 interests of the world unite!
You have nothing to lose.
^
2:8
FINALLY I
CGRS MICROTECH intpoouceb a
BSOS COMPUTER SYSTEM
^B 8100 8TANOARO BUB COMPATIBLE
^ MPU CARD WITH BK RAM-aKROM ONBOAnO
^m T. I. M.CSS30) SYSTEM I/O CARD
^m O.M.A. FRONT CONTROL PANEL
• INTROOUCTORV SYSTEM
MPU CARO : IK RAM
FRONT PANEL : HEX DISPLAY
« STANDARD SYSTEM
MPU CARO: IK RAM
T.I.M. I/O CARD
SIOO MOTHERBOARD : 7 SLOT
POWER SUPPLY BV:iaA
t1SV:1A
SEND CHECK OR MONEY ORDER TO:
CORS MICROTECH
P.O. BOX 3SS
SOUTHAMPTON , PA
^
Meet the PET
Charles Floto
267 Willow Street
New Haven, CT 06511
Copyright 1977 by Charles Floto
This article is based on about a month's experi-
ence with PET model 2001-8 serial #0010081.
Commodore indicates the only thing experi-
mental about it is the color of the case, which is
metal painted white.
In June I sent Commodore $595 for a PET with
4K of RAM to be delivered in late September.
Toward the end of the latter month I was in-
formed that initial production would be limited
to the 8K version and that I could either send an
additional $200 or get my money back. I sent
the $200 and my PET was delivered October 25.
It made the trip from Palo Alto to New Haven
well cushioned in a carton 21" x 23" x 19"
high. Since being unpacked my PET's survived
riding on a bus seat to Washington, D.C. and
returning by car.
While the case has a maximum width of I7V2"
and a maximum depth of 19" the placement of
the feet allows it to stand on anything at least a
foot square. Maximum height is IbW and the
PET weighs about 37 pounds.
A glance at the PET reveals its distinguishing
characteristic: everything's in one package --
including video display, keyboard, and tape
drive. A standard 9" diagonal black and white
TV tube is used. The display field measures
about 4%" high by 6" wide. This is divided into
25 lines of 40 columns. Each of these 1000
positions can be filled with one of about 300
different characters formed with an 8 x 8
matrix. Character width is about % of character
height. Characters available include those shown
on the drawing of the keyboard. Any of these
may also be displayed with black and white
reversed on an individual basis. Furthermore, by
changing the contents of memory location
59468 you can substitute lower case letters and
four additional graphics for 30 of the graphics
characters. Taking video inversion into account,
this gives a total of 316 available characters.
The graphics characters have been chosen to be
useful picture elements which give higher effect-
ive resolution than the 25 x 40 field would
suggest. For example, a horizontal bar graph can
be displayed with resolution better than 1/3 per
cent of full scale.
Characters may be placed on the screen directly
from the keyboard, by use of the PRINT com-
mand, or by a POKE into the screen memory.
This extends from decimal address 32768 to
33767 (i.e., 32K to 32K + 999). If A is a number
in this range and C is between and 255 then
POKE A, C will place a character on the screen.
The keyboard is the PET's most controversial
feature. It takes up an area 9" by 2%". Since
I'm used to typing with only two fingers and a
thumb the small size and rectangular layout
don't bother me. Each keytop is about 3/8"
square and can be depressed about 1/8". The
feel is similar to a standard spring-loaded switch-
— — \ f
.1
D
H
//
#
□
$
G
%
n
■
&
\
H
(
B
) ,
a
CLR
SCREEN
HOME
A
CURSOR
. V J
CURSOR
=>
INST
DEL
H
Q
n
w
H
E
y
D
T
a
Y
u
1
n
□
P
7T
n
7
H
8
H
9
/
4
A
s
H
D
H
F
G
H
J
K
□
L
□
R
E
T
U
R
N
4
D
5
6
*
♦
Z
4
X
B
C
V
m
B
N
M
Q
f
r
S
?
H
1
H
2
3
[B
+
SHIFT
OFF
RVS
ON
B
ffl
[
m
]
SPACE
<
>
RUN
STOP
SHIFT
•
H
ED
')
^
2:9
i^[|(d^(>)i
^^
closure keyboard. The only trouble I've had
with it is that occasionally one of the cursor
control keys will insert a character rather than
move the cursor. IVe been able to rectify this
by getting off the line and then coming back to
it. Preliminary investigation suggests it should
be quite easy to attach a standard keyboard to
the PET.
The other prominent external feature of the
PET is the tape drive which takes up an area
just over 5" square. It has the useful function
controls, but the motor is turned on and off
under software control in the play and record
modes. Prompts for operation of the controls
are displayed on the screen as appropriate. The
screen also displays status of the tape operation
in progress. When attempting to load or verify
a fUe with a specified name it displays the names
of other files found. File names may have a
maximum of 79 characters.
Short BASIC programs can be loaded from tape
at an effective speed of 250-400 baud, with
longer programs having a higher net rate. It
should be possible to fill the entire 8K of RAM
in under 2^/2 minutes -- once the proper program
has been found.
Sticking out of the lower right side of the PET
cabinet is a 40 line (plus 40 ground) printed
circuit connection to the internal bus. As it
does stick out about 1/8" metallic objects
should be kept away from this area. The three
groups of PC connectors in the rear present a
lesser hazard as they're flush with the cabinet.
These are: 1. A connector for the IEEE-488
bus (see MICRO No. One, page 11 for my
discussion of this); 2. A parallel port with hand-
shaking; 3. The interface for tape drive #2.
I was able to verify this one by removing drive
#1 from the cabinet and plugging it into the
rear as #2. Commodore has exhibited the PET
with a second drive connected, but hasn't
offered to sell any yet.
So much for physical externals. How good is the
firmware stored in that 14K of ROM? Since my
instruction book hasn't arrived yet I'll limit my
comments to the 8K BASIC interpreter describ-
ed in the nine-page "temporary version" of the
documentation.
My favorite feature of PET BASIC is the ease of
editing a line within a program. Just move the
cursor to the appropriate spot, make the change,
and hit RETURN - no need to retype the line.
It's also handy to be able to turn on the machine,
load a partially-written program from tape,
work on it for a while, then save the new version
on cassette, I'm glad I got the version with 8K
of RAM as I've already written a program that
leaves fewer than 5K bytes free. (The 4K model
is said to use a different circuit card, but since
there aren't any yet. . . )
I also appreciate the special variables TI and
TI$. TI is incremented 60 times a second; it
makes delays and timing applications easy.
TI$ is a 24-hour clock whose 6 digits indicate
hours, minutes, and seconds. As these suggest,
variable names may be two letters ~ as long as
they're not reserved words such as OR, IF and
ON. Variables may be integers, strings, real, or
multi-dimensioned arrays of any one of these.
Integers are limited to the range ±32767. Real
variables are calculated with 10-digit precision,
although only 9 digits are printed. For example,
pi=3.14159265; twice pi=6.28318531.
Another distinctive feature is the GET state-
ment which reads the keyboard without RE-
TURN having been pressed. Unfortunately
the random number function only works with
positive arguments. RND(0)=.564705882 always,
whUe RND(-l)=2.99196472E-08. The latter is
typical of the values returned with negative
integer arguments. This is the only bug I've
discovered in PET BASIC.
Editor's Notes: In MICRO #1, Charles Floto discussed the PET's IEEE-488 Bus.
Since then Motorola and Intel have both announced new ICs that will make it
easy to interface to this otherwise formidable bus structure. For more
information on the PET and a comparison with the Radio Shack TRS-80, see
"The PET Vs. the TRS-80" by Bob Wallace, MICRO #2, page 17.
^
2: 10
i>
Digital-Analog and Analog-Digital Conversion
Using the KIM-1
Marvin L. De Jong
Department of Math-Physics
The School of the Ozarks
Point Lookout, MO 65726
A Motorola 1408 8-bit digital to analog conver-
ter is connected as shown in the circuit diagram.
(The 1408 is available from James Electronics,
1021 Howard Ave., San Carlos, CA 94070, as
are the op amps used in these experiments.)
The PAD port of the KIM is used to provide the
digital input to the 1408. The analog output of
Circuit Diagram for
Digital to Analog Converter
the 1408 is a current sink at pin 4, which we
converted to a voltage by means of the RCA
CA3140 operational amplifier. The feedback
resistor R is adjusted to give the desired voltage
output. For example, an R of about 500 ohms
gives a voltage range from volts when PAD is
00000000 to 1 volt when PAD is 11111111.
PB<^-
SCOPE smc
■xo Scope
*ISV
*PB7
1 . Generation of a Ramp Voltage Waveform
For the first experiment do not connect the
second op amp, simply connect the output of
the first op amp to an oscilloscope as shown.
Load the following program.
Program to Generate a Ramp Voltage Waveform
ADDRESS
OPCODE
LABEL
INSTRUCTION
COMMENTS
0300
A9 FF
START
LDAIM FF
255 in Accumulator
0302
8D 01 17
STA PADD
Port A is Output Port
0305
EE 00 17
BACK
INC PAD
Increment number in PAD
0308
4C 04 03
JMP BACK
Increment in a Loop
Running this program should cause a ramp wave-
form to be observed on the oscilloscope screen.
A close examination of the ramp will show that
it consists of 2* = 256 steps rather than a
straight line.
^
2:11
iN
2. A DAC as an Analog to Digital Converter
The second op amp acts as a comparator. It
compares the voltage from the output of the
first op amp (which we shall call the digital
signal) with a voltage from some source to be
applied to pin 3 (which we shall call the analog
signal). The output is connected to PB7 on the
KIM. If PB7 = 1, the analog signal is greater
than the digital signal. If PB7 = 0, the analog
signal is less than the digital signal. The digital
signal is, of course, produced by the contents
of PAD.
A flow ch£irt showing what we intend to do is
shown below. Output port PAD is set to zero. If
the analog signal is positive the PB7 = 1 . PAD is
now incremented until the comparator indicates
that the analog signal is less than the digital
signal, i.e. PB7 = 0. At that instant the digital
and analog signals are the same to within one
bit, the least significant bit, on PAD. The
digital value of PAD is then displayed and the
cycle continues.
If the feedback resistor is adjusted so that a
value of PAD = 255io = FFl6 produces a volt-
age of 2.55 volts, then we have constructed a
simple digital voltmeter with a full scale reading
(in hex) of 2.55 volts. The extremely high im-
pedance of the 3140 op amp makes this a rather
good voltmeter. A simple program to convert
from hex to base ten would make the meter
easier to read.
Flow Chart for
Analog to Digital Converter
AD = PAD+1
1
DISPLAY PAD
CONTENTS ON
KIM
Program for Analog to Digital Converter
(Ramp Approximation)
ADDRESS OPCODE
LABEL INSTRUCTION COMMENTS
0300
A9 FF
START
LDAIM
FF
0302
8D 01 17
STA
PADD
0305
A2 00
AGN
LDXIM
00
0307
BE 00 17
RAMP
STX
PAD
030A
AD 02 17
LDA
PBD
030D
10 O^i
BPL
DISP
030F
E8
INX
0310
^C 07 03
JMP
RAMP
0313
86 F9
DISP
STX
INH
0315
20 IF IF
JSR
SCANDS
0318
He 05 03
JMP
AGN
255 in Accumulator
Make Port A Output Port
Start PAD at zero
Output Value of X register
Read Port B
Branch if bit 7 =
Increment X register
Continue loop
Put X into Display register
Use KIM Display Subroutine
and start again at zero
^
2: 12
Successive Approximation Analog to Digital
Used as a Storage Scope.
^W
The ramp approximation is quite slow and there
is a faster technique known as "successive ap-
proximation." It works as follows: the most
significant bit to the DAC is set to one and all
the others are set to zero. If the comparator in-
dicates that the analog signal is greater than
the digital signal, the next lower bit is set to 1
and the test is repeated. If the comparator in-
dicates that the analog signal is less than the
digital signal, the highest bit is made zero, and
the next lower bit is set to 1 and the test is re-
peated. This iterative process is repeated until all
eight bits have been tested, starting with the
MSB and ending with the LSB. The flow chart
indicates how this will be accomplished.
This analog to digital conversion scheme will be
used in a program which digitizes 256 points on
a waveform and then stores the results, to be
displayed at a convenient time and with as many
repetitions as desired on an oscilloscope. It is
useful for examining slow waveforms with an
oscilloscope with a low persistance screen, for
example ECG waveforms, and it is useful for
examining non-periodic waveforms such as a
one-shot impulse from an accelerometer. The
program has triggering built in, and the output
scan portion synchronizes the oscilloscope with
a sync signal, turning an inexpensive scope into
something more useful. A flow chart for the
program is given below.
Flow Chart for
Successive Approximation
Analog to Digital Conversion
Flow Chart for Storage Scope
\.
PAD = 80^g = 10000000
PGZZ = 80^g = 10000000
YES
PAD = PAD - PGZZ
LOGICAL SHIFT RIGHT PGZZ,
(Shifts all bits one bit
right and zero bit is
shifted into carry bit.)
I
PAD = PAD + PGZZ
^ET trigger)
^TART timer)
( DIGITIZE J
r GO TO >(
V DISPLAY J
2: 13
r^
SN
A short description of the behavior of the cir-
cuit and program follows. The experimenter
chooses the desired trigger level and loads this
into location 0306. When the analog signal is
greater than this, the comparator makes PB7 go
high and the scan begins. The sampling rate and
the scan time is determined by the number load-
ed into the timer and the timer used; locations
0314 and 0316, respectively. It takes at least
200 microseconds to digitize so there is no
point in choosing time intervals smaller than
this. X is used as an index to identify each of the
256 points on the sc£in. After the timer is
started the analog signal is digitized and the
timer is watched until it is finished. X is then in-
cremented and a new point is digitized until all
256 points are finished £ind stored in TABLE.X.
X is then zero again. This entire process will
repeat unless the 1 key is depressed, in which
case the program displays the data on the oscil-
loscope, connected as before to the output of
the first op amp. The display will repeat, com-
plete with SYNC signal output from PBO,
until the program is halted. In our case we load-
ed the vector 17FA and 17FB with the starting
address of the program (0300) so a depression
of the ST key caused the entire program to
start over.
A listing of the program is shown on the follow-
ing page. Notice that the data is stored in
TABLE,X located in page 2 of memory, PGZZ
is at location 0000, the trigger level is in 0306
and the scan time variable is in 0314 and 0316.
The scan time should not be shorter than 200
microseconds. As far as display is concerned, we
found that a sweep rate of 200 to 500 micro-
seconds per cm gave good results.
Flow Chart for Display
fesT X = ;
-<^
(sync scope)
PUT
TABLE (X)
INTO PAD
( X = X + 1 j
A few other comments may be in order. First,
most of the ideas for this project were obtained
in a KIM workshop offered by Dr. Robert
Tinker. The software implementation is the
author's work. There are some obvious improve-
ments, such as a sample and hold device between
the £inalog source and the comparator or a faster
approximation routine. These improvements are
left for the reader to implement. The author
would be glad to be informed if such improve-
ments are made.
^
/i
i£D3(3a(£)i
^v
MICRO Reviews:
The First Book of KIM
This is one terrific book for anyone who has a KIM-1. It was assembled by Eric
Rehnke (Publisher of "KIM-1 /6502 User Notes"), Jim Butterfield ("Hypertape" and
many other good utilities), and Stan Ockers (a regular "User Notes" contributor).
Over half of the book is devoted to "Recreational Programs", games you can play
on your basic KIM-1. The section on "Diagnostic & Utility Programs" is worth
the price of the book by itself. The remainder of the book contains tutorial
information on getting started with your KIM-1 , expanding your system, and inter-
facing to the outside world. This well produced, 176 page resource is available
for $9.50 (including postage in USA) from:
ORB
P.O. Box 311
Argonne, IL 60439
^
2: 14
^
Program for Storage Scope
ADDRESS OPCODE
LABEL INSTRUCTION COMMENTS
0300
A9
FF
BEGIN
LDAIM
FF
0302
8d
01
17
STA
PADD
0305
A9
10
START
LDAIM
TSET
0307
8D
00
17
STA
PAD
030A
A2
00
LDXIM
00
030C
EA
NOP
030D
EA
NOP
030E
AD
02
17
TRIG
LDA
PBD
0311
10
FB
BPL
TRIG
0313
A9
CO
STIME
LDAIM
CO
0315
8D
05
17
STA
TIMER
0318
A9
80
LDAIM
80
031A
85
00
STAZ
PGZZ
031C
8d
00
17
TEST
STA
PAD
031F
AC
02
17
LDY
PBD
0322
30
03
BMI
FWRD
0324
38
SEC
0325
E5
00
SBCZ
PGZZ
0327
46
00
FWRD
LSRZ
PGZZ
0329
BO
08
BCS
OUT
032B
65
00
ADC
PGZZ
032D
4C
1C
03
JMP
TEST
0330
8D
00
17
OUT
STA
PAD
0333
9D
00
02
STAX
TABLE
0336
E8
INX
0337
FO
08
BEQ
DISPLY
0339
AD
07
17
CHEK
LDA
TCHEK
033C
10
FB
BPL
CHEK
033E
4C
13
03
JMP
STIME
0341
20
6A
IF
DISPLY
JSR
GETKEY
0344
C9
01
CMPIM
01
0346
FO
03
BEQ
SYNC
0348
4C
05
03
JMP
START
034B
A9
01
SYNC
LDAIM
01
034D
8D
03
17
STA
PBDD
0350
A2
00
LDXIM
00
0352
AD
02
17
RPT
LDA
PBD
0355
49
01
EORIM
01
0357
8D
02
17
STA
PBD
035A
BD
00
02
SCAN
LDAX
TABLE
035D
8D
00
17
STA
PAD
0360
E8
INX
0361
DO
F7
BNE
SCAN
0363
4C
52
03
JMP
RPT
Initialize Port A to Output
TSET Trigger Voltage Set
Initialize X register
Tinput and test PB7
Wait if PB7 =
Set Scan Time here
Select Interval Timer
Start Digitize Sequence
Store Initial Value
Output Value
Test PB7
Branch if PB7 = 1
Clear Borrow Flag
Subtract bit 7
Set PGZZ for Next Lower Bit
Out of Digitize Loop if Finished
Set Next Lower Bit = 1
Return to Test all Lower Bits
Final Approximation in PAD
and in TABLE (X) in Page 2
Bump Table Index
Go to Display if Table Complete
Test if Timer is Finished
If not, Wait in Loop
Digitize another Point
Is Key 1 Depressed?
Yes. Display the Data
No. Return to Start
Set up PBO as Sync
Output Pin
Init X to Display Table
Toggle PBO for Sync
Signal to Scope
Output Table (X) for
Display on Scope
Increment X register
Continue until all Points Done
Then Repeat
NOTE: This material was submitted by the
author to the KIM-1 User Notes and has also
been distributed by MOS Technology as "KIM
Application Note #11701." It is printed here
with the permission of the KIM-1 User Notes
and MOS Technology.
^
2:15
COMPLETE, READY TO USE, APPLE II MICROCOMPUTER WITH BASIC AND SYSTEM MONITOR IN
ROM AND 16K BYTES OF RAM. Apple II with 8K of RAM $1391.75
Additional 8K Memory Expansion When Purchased With System $106.25
TOTAL 16K SYSTEM ONLY $1498.00 - SAVE $200
APPLE II PERIPHERAL INTERFACE CARDS:
■ S-100 BUS INTERFACE ($160)'''
- Connect the Apple II to an S-100 Bus Motherboard
- Will Run Almost All Memory, I/O, and Special
Purpose S-100 Boards
- All Interconnecting Cables and Plugs Supplied (S-100
Motherboard and Power Supply Not Included)
PROGRAMMABLE PRINTER INTERFACE ($80)
- Onboard EPROM Printer Driver
- Full Handshake Logic
- High Speed Parallel Output Port Capability
- Provision for 256 Byte I/O Drive in EPROM
- Printer, Driver Programs Available for Centronic,
SWTPC-40, and Other Printers
Delivery January, 1978.
FLOPPY DISC INTERFACE TO PERSCI ($80)
- Programs Saved and Loaded by Name
- Powerful Firmware DOS File Handling Capability
- Storage Capacity of 252K Bytes per Disc
- Up to 4 Drives (One Million Bytes)
- File Handling as Easy as Inputing or Printing
- Access Methods: Stream, Punctuated, Relative, Direct
APPLY POWER CONTROL INTERFACE''"
- Up to Sixteen Control Channels
- Control Room Lights, Stereo Equipment, Security
Systems, Electrical Appliances
- Handle Up to 1000 Watts per Channel Directly From
Program Control
- Complete Isolation of the Computer From the AC
Line
- PRICE:
• Apple Power Interface Board and One Power
Control Module ($85)
• Additional Power Control Modules (Controls Four
AC Circuits) ($25)
• Appliance Control Module (Controls One AC
Circuit) ($7.50)
ADD ON MEMORY FOR APPLE II
SOFTWARE FOR APPLE II
■ Set of Eight 4K RAM CHIPS
$ 44
■ Home Financial Record Program (Req. 16K Sys)
$ 20
■ Set of Eight 16K RAM CHIPS
$540
■ Business Inventory (Req. 20K Sys)
$ 40
■ Upgrade of Apple II Memory Using Modified
■ Bob Bishop's High Resolution Games (Req. 16L Sys)
$ 40
4K RAM Memory Expansion
- Star Wars
$ 15
- 4K to 16K
$250 .
- Rocket Lander
$ 15
- 8K to 16K
$160
- Saucer Invasion
$ 15
- 12Kto 16K
$ 80
■ Apple Music (Three Octaves)
$ 20
■ Data Save to Cassette
$ 20
COMPUTER PLAYGROUND
6789 WESTMINSTER AVENUE
WESTMINSTER, CALIFORNIA 92683
(714) 898-8330
APPLE II CLASSES
BOOKS
■ Introductory Basic (Three-Two Hour Classes) $ 20
■ 6502 Programming Manual
$ 10
■ Advanced Basic (Four-Two Hour Classes) $ 30
■ 6502 Hardware Manual
$ 10
■ 6502 Assembly Language (Five-Two Hour Classes) $ 50
■ Apple 11 Low and High Resolution Graphics and
Sound (Two-Two Hour Classes) $ 1 5
Mastcrcharge, Visa. B of A accepted. No C.O.D. Allow two weeks for personal check to clear Add $1.50 for handling and postage. For
computer system, please add $10.00 for shipping, handling, and insurance. California residents add 6% sales tax.
^
The PET Vs. the TRS-80
Bob Wallace
P.O. Box 5415
Seattle, WA 98105
The $600 computer has arrived! The PET (Pro-
grammable Educational Terminal) by Commo-
dore, and the TRS-80 by Radio Shack, usher in
a new era of personal computing. Both are
assembled computers, with video display, key-
board, audio cassette storage, and BASIC; both
initially come with 4K bytes of user memory.
There the similarity ends; each has significant
advantages and disadvantages. I should mention
my bias at the outset; I'm for the PET. Some
cynical souls will think it's because the store
where I work can carry the PET and not the
TRS-80; however, the real reason is the PET's
much better BASIC. More on this later.
Let's start with the hardware, which I consider
about evenly balanced. The PET uses the 6502
microprocessor; as a matter of fact. Chuck
Peddle, who designed the 6502 for Mos Tech-
nology, also designed the PET. Clock speed is
1 Mhz so a "load immediate" instruction takes
2 microseconds. The TRS-80 uses the Z-80
microprocessor, with a 1.776 Mhz clock. This
gives a "load immediate" time of 3.94 micro-
seconds. In general, the Z-80 has a more advanc-
ed instruction set (both manufacturers should
have assemblers available in 1978). The actual
speed of the BASIC depends more on the
BASIC interpreter than the cycle times. If the
speed is important to you, wait for the inevi-
table published benchmarks.
As mentioned, both units come with 4K of
RAM; you can pay $200 more for the PET to
get 8K, and $280 more for the TRS-80 to get
16K. Both could probably be expanded with
user-installed memory chips for much less. Add-
itional RAM for both units goes in an expansion
box, not yet available. The TRS-80 comes with
4K of ROM, including BASIC, keyboard scanner,
cassette and video handlers, etc. It has provision
for a second 4K of ROM to get Level II BASIC,
and a third 4K ROM to get Level III. The PET
comes with 14K of ROM: 8K for BASIC, 4K
for the operating system, IK for a machine
language monitor, and IK for a diagnostic to
test all the hardware.
The PET video display is 25 lines of 40 charac-
ters, or 1000 characters total. An 8 x 8 dot
matrix is used for each character. The character
set is 64 ASCII, upper case only. In addition,
there are 64 graphics characters, including
various lines for limited vector graphics, the
playing card suit symbols, and others. Reverse
field video (black on white instead of white on
black) is available for all 128 characters by set-
ting the high order bit. The TRS-80 video dis-
play is 16 lines of 64 characters, or 1024 charac-
ters. 5x7 dot characters are used in a 6 x 12
dot matrix. The character set is also 64 ASCII
characters (upper case only), plus 64 graphics
characters. For each character position, any of
6 dots may be turned on, giving flexible point
graphics in a total field of 48 by 128 dots. The
high order bit of a 7 bit byte determines whether
a character or six dots is displayed. The PET
display is 9 inches (diagonal), integral to the
unit; the TRS-80 display is 12 inches, in a
separate video monitor.
The TRS-80 keyboard is a straight, 53-key
(Teletype) variety. The PET keyboard has 73
keys (53 in the center plus a 20 key numeric
pad), but the keys are arranged in rows and
columns, rather than offset like a typewriter.
The PET keyboard is crowded, and is probably
the worst feature of the unit.
The TRS-80 cassette interface operates at about
250 baud (25 cps); a 4K load would take about
160 seconds. It includes a motor on/off relay for
reading and writing data files. Only one cassette
recorder can be connected, making tape-to-tape
copying and editing very difficult. The cassette
recorder is a standard model sold by Radio
Shack, connected with cables to the computer.
The PET cassette interface operates at about
680 baud; a 4K load takes 60 seconds. One
cassette recorder is integral to the unit; it uses a
standard deck with special electronics. Another
cassette recorder, available as an option in a
month (the first option) for about $50, allows
tape-to-tape work. Both cassette recorders have
motor control.
Expansion from the "BASIC boxes" is planned
for both units. Radio Shack is expecting a $700
minifloppy and a $1,500 dot matrix printer by
the end of 1977, and later a serial I/O port and
an acoustic coupler. A non-standard 40 pin bus
connects peripherals (and the expansion mem-
ory) to the TRS-80. Commodore expects to
have their second cassette box out in a month,
a dot matrix printer in late 1977 or early 1978,
a minifloppy in early 1978, and some "fun
\
2: 17
1
peripheral" soon after. The PET comes with an
8 bit I/O port, plus an IEEE-488 interface bus
for peripherals. The IEEE-488 bus is used by
instrumentation manufacturers, is standardized,
and will probably be supported by some other
manufacturers. Motorola is working on a one-
chip controller for IEEE-488, since the interface
logic is pretty complicated.
The PET is I6V2 x 181/2 x 14 inches and weighs
44 pounds. The TRS-80 consists of a 161/2 x 8 x
3 box with the keyboard and electronics, a
16'/2 x 13'/2 X 12 video monitor, the cassette re-
corder, and a power supply (don't know the
total weight).
So far, the differences aren't outstanding. The
BASIC'S are very different, however. TRS-80
BASIC allows 26 numeric variables (floating
point only, 7 digit significance), 2 string variables
(A$ and B$, each with 16 characters maximum),
and one array, A(i). PET BASIC allows 676 each
of integer, floating point (10 significant digits),
and string variables; strings can have a maximum
length of 256 characters. PET arrays can have
multiple dimensions; also, trig functions are
included in PET BASIC but not TRS-80 BASIC.
The PET BASIC also has a real time clock. TRS-
80 BASIC includes commands to set and clear
points on the graphic display. Also, more ad-
vanced BASIC on the TRS-80 will become
available with two additional 4K ROM's. Both
BASIC'S include machine language functions,
PEEK and POKE, and the ability to read and
write data files with the cEissette recorder.
Neither includes the PRINT USING statement,
although both have other line format control
functions.
Both the PET and the TRS-80 are in production,
and have been shipped to customers. There is a
long line for both, however. I'm not sure about
the TRS-80, but the PET has a 90 to 120 day
waiting period, when ordered direct from the
factory. The only currently authorized dealer
for the PET is Mr. Calculator, a chain in Cali-
fornia (I haven't found one up here); however,
as soon as the back order situation improves,
computer stores and large chains will be carrying
it. The TRS-80, of course, is available at Radio
Shack, and later at Tandy Computer stores
(which will also carry the Processor Technology
SOL-20, the Apple-II, and other brands). One
other thing: manuals for the PET will be
available separately, this fall, and I hope to
order some of those if you're interested.
For more information, try "A PET for Every
Home", Sept. Kilobaud, and "The Radio Shack
TRS-80 Microcomputer System", Sept. Interface
Age. Also, there's "Radio Shack's $600 Home
Computer", Sept-Oct Creative Computing,
"Birth of the PET Computer", Sept-Oct Per-
sonal Computing, and "Radio Shack's New
Computer System", Oct Radio Electronics.
Several other new personal computers, in the
PET/TRS-80 price range, are coming soon.
Texas Instruments looks like the first giant
corporation to jump into the ring; their new
product announcement is expected this fall.
Bally (an arcade game manufacturer) has a mail
order unit available through JS&A. It's a com-
bination video game and computer, with 12K
of RAM/ROM, and a 160 by 100 dot video
interface that connects to your TV (no CEissette
or keyboard) for $300. Atari (another video
games manufacturer), and a European and
Japenese company are also expected to enter the
competition. National Semiconductor and
Hewlett-Packard have the capability to produce
personal computers, but I haven't heard any
rumors from them yet. IBM is a rather distant
possibility, I suppose. Zilog is announcing the
Z-800 this fall, which is also a factor.
NOTE: This material was originally printed in
"Northwest Computer Club News", October
1977 and is reprinted with the permission of
the author.
Editor's Notes: One additional difference that may be important to some users
is the fact that the PET Monitor supports assembly level code while the TRS-80
only supports BASIC. This means that you can write special routines in 6502
code on the PET. These may be called by the PET BASIC. This facility can
greatly enhance the power of the computer. For a user's view of the PET, see
"Meet the PET" by Charles Floto, MICRO #2, page 9.
\
2: 18
^w
Ludwig von Apple II
Marc Schwartz
220 Everit Street
New Haven, CT 06511
Owners of the Apple II know from the demon-
stration tapes that the Apple can make sounds.
Not all know that it can make music. Having
prepared a horse racing program, I decided that
it would be fitting to start out the game with the
bugle call heard at the track. The following pro-
gram does just that!
A few words of explanation are in order. The
series of "pokes" in lines 30 to 240 set up a
musical tone subroutine that is called in line 460.
Each note is represented by a four digit code in
A$. The first three digits of the code determine
the note, and the last digit determines the length
of the note. Line 410 decodes the first three
digits by converting each digit to ASCII (Apple
ASCII), subtracting 176 from each to give
three numbers, from zero to nine, and then
multiplying the first number by the second and
adding the third. This is one of many possible
ways of generating all the numbers from zero to
a large number (ninety in this case) using single
digits.
Line 420 takes the number just generated and
subtracts it from forty. This is done because the
subroutine as written is a bit confusing if you
want to make music, since the tones go up as the
numbers go down. This step corrects for that.
Line 440 determines how long each tone will
be. AS "ASC(A$(Z + 3) - 176)" increases, the
note lengthens: a "1" produces a very short
note, and a "6" makes a very long note. For
some reason, higher tones come out more
brief than lower tones.
Line 450 determines the tempo. A larger num-
ber speeds up the tune; a smaller one slows it
down. Tempo numbers can go from 1 to 255.
When the program reaches line 470, it returns to
line 400 to begin decoding the next four digits
and playing the next note.
I don't think that Chopin would need to worry
about competition from anyone using this pro-
gram, but it is fun to have a musical computer.
THE APPLE II BUGLE CALL
WITH THE APPLE II
10
REM MAKING MUSIC
20
DIM A$(255)
30
POKE
2,173
40
POKE
3,48
50
POKE
4,192
60
POKE
5,165
70
POKE
6,0
80
POKE
7,32
90
POKE
8,168
100
POKE
9,252
110
POKE
10,165
120
POKE
11,1
130
POKE
12,208
140
POKE
13,4
150
POKE
14,198
160
POKE
15,24
170
POKE
16,240
180
POKE
17,5
190
POKE
18,198
200
POKE
19,1
210
POKE
20,76
220
POKE
21,2
230
POKE
22,0
240
POKE
23,96
300 A$="001 10071521 1720172017201"
310 A$(25)="521 1521 1521 10071521 100710012"
400 FOR Z=1 TO LEN(A$)-3 STEP 4
410 Z1 = (ASC(A$(Z))-176)«(ASC(A$(Z-h1))-176)
-►ASC(A$(Z-h2))-176
420 Z2=40-Z1
430 POKE 0,Z2
440 POKE 24,ASC(A$(Z-h3))-176
450 POKE 1,75
460 CALL 2
470 NEXT Z
480 END
2: 19
COMPU/TIME
CT 100
COMPU/TIME offers
A
Real Darn Clever
Enhancement to users of
IMSAI/ALTAIR Microprocessors
S100 BUS COMPATIBLE
TIME & CALENDAR
COMPU/TIME CT100 t199 Kit $245 Au«mblad
COMPU only C101 t149 Kit $189 Asumblad
TIME only T102 $165 Kit $205 Ammblad
COMPU/TIME PC Board mly $ 80
Till
You will want to know about the TU-l Video to Television
Interface Kit.
No need to buy a separate Video Monitor if you already
own a TV set. Just connect the TU-l between your systerr
video output and the TV set antenna terminals— that's all
there is to it— to convert your TV set to a Video Monitor, anc
at a much lower cost! PRIPP $8 9R
■l^:EB
FC8 SOOOA — 3Vi Digrt — .8" Display
HEW 2i Pin Veraun wrtn cokw i im/pm indicator
• Connects iimoil one
tor one wfOl 3817. 38t7A
01 0. I3B17 iviMiblt 11
• T|n>K8l Moment currant
SmA ernpi colon. tO hrs
b i c ind 10 mm. i i d
when ire 16 mA
• Forvnd voliiga diop
1 S volts
FfKWT VltW FSC8000
SPECIAL
$4.95 EA.
• MAXIMUM FORWARD
CUflflENI - 2S iiA
Pern
SLIT-N-WRAP WIRE WRAP TOOL
• Slits and opens insulation axposlng
bare wire
• No pre-cutting or pre-stripping.
• Comes complete with two - 1 00 ft spools
#26 AWG wire
Plugboards 8800V
IMtl P1M
124.50
Universal Microcomputer/
Processor plugboard, use with
S-100 bus complete witti l>aat sink &
lardware 5.3 « 10 «1/16"
$19.95
fCH^NNELCE^
$159.95
• Freeze Actjon • Speed Option
• Automatic time and sconkeepmg
• Battery-tree AC operation
• Dual controls witti 8-way action
• Built-in Pro Hockey and Tennis gifties
• Easy twol(-up on any B/W or Color TV
• Factory warranty
Chinnel F — iddltlonil caitrldgis -$17.95 88. M^llimri'i'r
oats — BUdHadi |1 Of 2 mayanl
■ oei4-S««lri|1oi2playaii|
l»1l— TIc-Tac-Toa/StooHng&illary oatS — Sprawai 12 mayan) 0611 — Drag Mp |t or 2 Mieni
Quaen-AxKlla/Ooodk/ Data — Uigic Numein MB — Maa 12 mayanl
Oai2 - Oaaan Fni/slnotlngGallary Iconvular logicl oa22 - aaaAae (2 flaijnl
EDGE CONNECTORS
20
OUAL
ICl
PIN
30
DUAL
!■)
PIN
44
DUAL
n
PIN
44
DUAL
n
PIN
&D
OUftL
so
PIH
86
DUAL
13
PIN
100
DUAL
SO
PIN
100
DUAL
SO
PIN
100
OUAL
so
PIN
100
OUAL
50
PIN
GOLD
GOLO
GOLD
GOLO
GOLD
ooLOieeoD)
GOLOdNSAI/ALTAIR)
GOLOdNSAI/ALTAlU)
GOLD(N0 EARS-IHSAI
TIN (.1" SPACING)
4.25
4.9S
ALTAIR/IMSAI CARD GUIDES
Computer Products
5351 WEST 144th STREET
LAWNDALE, CALIFORNIA 90260
(2131 679-3313
RETAIL STORE HOURS M-F 9-7 SAT. 9-5
Discounts available at OEM quantities. Add $1.2&
for shipping. California residents add 6% sales tax.
CATALOG FREE WITH $10.00 ORDER
W§ 7400N TTL^JJJp
SN74aiM 16 SN745H 7S
SN7401N tS SN74«IW Zl
SN74Q2N 2t SN7470M 4S
SN7403N tS SN7472ft 39
SN7404N 18 SN74rm 37
SN740SN 24 SN7474N 32
SN740aM » SM747W* »
SN7407N 29 SN747eN 32
SN740M 2a SN74TW S 00
SN740M 25 SN74aON .»
SN7410N 11 SN7482N 99
SN74ttN 30 SN74KW 70
SN74t2N 33 SN74aSM M
SN7413M 45 SN74aeN 39
SN7414N 70 SN748SN 3U
SN7418ft 31 SN74«N 2 49
SN7417N 35 SH7490N 45
SN7420N 21 SN74giN 75
SN7421N 33 SN7492N 49
SN7422N 49 SN7483N 49
SN7423M 37 SN7494h 79
SN742M 29 SN749SN 79
SN742eM 29 SN749eN M
SN7427N 37 St47497N 4 m
SN7429N 42 SN74)00N 1 m
SN7430N H SN74107N 39
SN7432N 31 SN74121N' 39
SN7437N 27 SN74122N 39
SN743SN 27 SN74t23N 50
SN743SN 25 SN74t25N 60
SN7440N 15 SN741ZeM .60
SN7441N S9 SN74132N 1 09
SN7442N 69 SN7413M 95
SN7443N 75 SN74i4tN I t5
SN7444N 75 SN74142N 4 00
SN7445N 75 SN74143N 4 50
SN7440N 81 SN74144N 4 50
St47447N 69 SN74145N 1.15
SN744M 79 SN74147N 2 35
SN7450N 26 SN74148N 2 m
SN745IN 27 SN74150N 1 U
SN7453H 27 SN74ISIN 79
SN7454N 20 SN74153N 89
MANY OTHERS AVAIUkBU ON REQUEST
20% Dixaunt fof 100 ComMnwl 7400 ■
SH74tMN
SN7415SN
SN741ieN
SN74IS7N
SN74180N
SN7416IN
SN74IUN
SN74164N
SN74ie5H
SN74l8eN
SN74I67N
SH74170N
SN74t72N
SN74173N
SN74174N
SN74175N
!;N7417eN
SN74t77N
SN74180N
SN74181N
SN74182M
SN741MN
SN74te5N
SM741iai
SN74I87N
SN74188N
SN74t90N
SN74I91N
SN74t92N
SN74t93N
SN74194N
SN7419eN
SN74199N
SN74I97N
SN7419IN
SN74198N
SN74279N
SN7425tN
SN74294N
SN742e5N
SN74.167N
CO400D
CM001
ctMOoe
CO4006
CD4007
CD40O9
CD4010
C04011
CCM0I2
C04013
C0401S
CW017
CCM019
CO4020
CO4022
C04023
CD4024
004025
004028
004027
CD4028
0040(9
25
TBBT
CD4030
CO4035
004040
CD4042
CD4044
0D4O46
004047
CD4049
CO405O
004051
CD4053
cCMoeo
004066
CO4069
CD4071
004061
C04511
004516
M014566
74C00N
74002N
74004N
740 ION
74C20N
74C30N
74C42N
740 73H
74C74
74C90N
;4095N
740107N
74C151
74C1M
7401 57
740160
74C1S1
740163
740164
740173
74CI93
740195
MC4044
M014016
LM301H 35
LM301CN 35
LM302H 75
LM304H 1 n
LM309H 95
UC07CN 35
LM3oeH 1 m
LH30SCN 1 00
LM30eH 1 10
LM309K 99
LU310CM 1.15
LH31tH 90
LH31tN 90
LU3teCN 1 u
LM319N t 30
LM320K-S 1 35
LM320K 5 2 1 35
LM320K-12 1 35
LM320K-15 1 35
LJI320T.5 1 75
lJiO20T 5 2 1 75
LM320T-8 I 75
Ui320T-12 1 75
LM320T-15 175
UKBOT-te I 75
LK32DT-24 1.75
LM323K-5 9 9S
LM324N t.aO
LM339N 1 70
LM340K-5 1 9S
LM340K4 1 95
lJ«340K-8 195
LM340K-12 1 95
|JU340K'I5 199
LIU40K-ie I 95
UCHOK 24 1 95
UW40T-5 I 75
UO40T-8 1 75
IM340T4 1 75
LII340T-I2 1 75
U«40T 15 \ T5
Lil340T.18 I 75
LU340T-24 1 75
LM3S0N in
LM351CN SS
LINEAR
tSmG 1 75
LM370N
LH373N
LU377N
uuaoN
LM3B0CN
LH3eiN
LU3B2N
NC501K
NCS10A
NC53IH
HE536T
NC540L
NE550N
NCS&SV
NE5606
NE56IB
NCaaZB
NCS6SH
NC5A5N
NCSeflCN
NE567H
NEsarv
LM703CN
Lil709H
LM708N
LM710N
LH71tN
LM723N
LM723H
LH733N
LM739N
LM741CH
LM741CN
LH741-t4N
LM747H
LM747N
LM748H
LM748N
LM130M
LMt304N
LM130SN
LM1X7N
LM1310N
LM1351N
LM14t4N
LM14SaC
LM1496N
LMt55ev
LM21I1N
LU2901N
LM30a5N
LH3900N
LM3909 1
LM5SMN 1
UC55SaV 1
LH7525N
LM7535N t
803n 4
LM75450
75451CN
75452CN
754UCN
75454CN
754giCN
75492CN
754MCN
nCAUNIU
0A3013 2
0A3023 2
CAIOU 2
CA3039 1
CA304e 1
CA30U 3
CASOOO 3
CA3080
CASOei 2
CA10S2
0A3063
CA3oae
CA3099
CA309I
CA3102
CA3123
CU130
CA3140
CA3a00
RC4t94
RC419S
1020
2.95
215
139
74LS00
74LSO?
74LSa3
74LS04
74LS05
74LS0e
74LS10
74LS13
74LS14
74LS20
74LS26
74LS27
74LS78
74LS30
74LS32
74LS40
74LS51
74LS55
74LS73
1174LS00 TTL
74LS74
74LS75
741S76
'4LS83
MLSeS
74LSa6
74LS90
74LS92
74LS93
741S95
74LS96
74LS107
74LS109
74LSn2
74LSI32
74LS136
74LS136
HMU11
IM&312
MMSSM
WS3I6
<MI5318
CTTOOI
6 D«ll. BCD OulDiA. RMt PM
6 Oiga. BCD Output!. 12 or 24 Hour
4 0«t. 8CD Dilpuli. 1 pre Oupwt
6 aga, 12 or 24 How. 50 or SO M
4 0ig<, Altrm. 1 Preouput
VUn Oodi Ov. For Um Whh (HH5M1 -
6 Oiga. Uwidi'. Mrm. 12 or 24 How
74 LSI 39
74LST51
741S153
74LS157
74LS162
MLS 163
74LS164
'4LS175
74LS1B1
74LS190
74LS191
74LS192
74LS193
74LS194
74LS195
74LS257
74LS260
74LS279
741S670
499
696
996
THE PROM SETTER
WRITE and READ
EPROM
1702A unA ZTflfl
' PluRS Dirprlly into your ALTAIR/IMSAI Cnmpulf r
■ ln( ludrs M.iin Module Board and EKternal KPROM
Sorkrt llnil
The RPROM Snckr-I Unit is ronnected to the Com-
pulpr ihnniBh a 25 Pin C'nnnpctnr
• PrnRramminR is iiccomplishpd hy the Compuler
' |iisl RpHil in Ihp PriinrHm In I)p Wriltpn on Ihe
FPROM inin your Processor Hnd let the Computer
dfi Ihp rpsi
' Hsr Snckpl Unit to Read EPROM"^9 Cnnlents inio
your C'ompulpr
' SfilUvHTP inrludpd
' No KxicroHl Pnwpr Supplies. Your Computpr does
il ;ill
• ProKF.ims iind Rp.ids Hot h 1702 A and 270fl RPROMS
' Dtiuhlp^. .IS .m F.iKht Hit pHrnllel in
' Mnnuiil includpd \)c\\vcty Lpss ihon f(0 davf^
INTRODUCTRY OFFER
THL FROM SlTTER
Kit $210 A:";Sf:MBLED$375
I'HOH SETTER T
above unit with ?716 adapter
Kit$260 A.ssembled $425
WIRE WRAP CENTER
HOBBY-WRAP TOOLBW-630
Battery Operated (S<» C)
Weighs ONLV 11 Ounces
Wiaps 30 AWG Wire onto
Slandard DIP Socliels (.025 inch)
.1 mciuOKi. ^ 9 Complete with huilt-m bit and sleeve
WIRE-WRAP KIT — WK-2-W
WRAP . STRIP . UNWRAP
• Tool loi 30 AWG Wire
• Roll ol SO Ft White or Blue 30 AWG Wire
• 50 pes each 1". 2 . 3 S 4 lengths
pre-stripped wire.
$11.95
WIRE WRAP TOOL WSU-30
IMUr . STRIP . UNWRAP -tS.M
WIRE WRAP WIRE — 30 AWG
50ltJ195 lOOOIt.JIS.OO
SPtCIFY COLOR — White - Yellow - Red ■ Gieen ■ Blue - Black
WIRE DISPENSER — WD-30
• 90 It. roll 30 AWG KYNAR win wrap win $3.45 ea.
• Cuts wire to desired length
Strips 1" ol insulation tfwHy — Blue-Veilow-iMilte-Rad
LIQUID CRYSTAL DIGITAL
CLOCK-CALENDAR
W^^m'
For Auto, Home, Office
Small In size (2x2 VixVi)
Push button for seconds release for date.
Clocks mount anywhere with either 3M double-
sided tape or VELCRO, Included.
2 MODELS AVAILABLE:
LCD-101, portable model runs on self-contained
batteries for better than a year.
LCD-102, runs on 12 Volt system and is back-
lighted.
.00-101 or LCO.102 4bOO QC
'Our cholc« «p«3O«i70 M.
Hear d«il( stand lor $2.00
MA 1003, 12V DC CLOCK MODULE
Built in X'TAL controlled
time bet*. Protected aaaintt
automotive volt tranilants.
r-=' Automatic brlghtnets con
J ,trol with 0.3"
$17.95
I display,
with ignition
grean color
Display turnoff
MICROCOMPUTER
MICROPROCESSOR'S
F-8
280
2-80A
CDP1802CD
AM2901
6502
6800
8008-1
8080A
TMS-9900TL
6100 SUPPORT
19.95
25.00
35.00
24.95
22.95
12.95
19.95
8.75
15.95
89.95
6810P
6820P
6828P
6834P
6850P
6852P
6860P
6862P
6880P
4.95
8.00
11.25
16.95
9.95
11.95
14.95
17.95
2.70
Z80 SUPPORT OEVICES
3881 12.95
3882 12.95
F-8 SUPPORT DEVICES
3851
3853
14.95
14.95
DYNAMIC RAMS
1103
2104
2107A
2107B
21078-4
TMS4050
TMS4060
4096
4116
MM5270
MM5280
MCM6605
1.50
4.50
3.75
4.50
4.00
4.50
4.50
4.50
42.00
5.00
6.00
6.00
CHARACTER
GENERATORS
251 3 UP
2513 DOWN
2513UP(5vl
2513DOWN(5v)
MCM6571
MCM6571A
MCM6572
MCM6574
MCM6575
6.75
6.75
9.95
10.95
10.80
10.80
10.80
14.75
14.75
PROM'S
1702A
2704
2708
2716
3601
5203AQ
5204AQ
6834
6834-1
82S238
82S1298
8223B
5.00
15.00
20.00
38.00
4.50
4.00
6.00
16.95
14.95
4.00
4.25
2.70
lOlOA SUPPORT DEVICES
8212
8214
8216
8224
8228
8238
8251
8253
8255
8257
8259
3.95
9.95
4.50
4.95
8.75
8.00
12.00
28.00
12.00
25.00
25.00
STATIC RAMS 1 24
21L02
21L02
21L11
1101A
2101-1
2102
2102-1
2111-1
2112-1
2114
31L01
3107
4200A
4804/2114
5101C-E
74C89
74S201
7489
8599
9102BPC
(450)
(2501
1.50
1.95
4.25
1.49
2.95
1.25
1.50
4.00
3.00
17.95
2.50
3.95
12.95
17.95
11.95
3.25
4.50
2.25
1.88
1.65
25-99
1.40
1.80
4.10
1.29
2.75
1.15
1.30
3.50
2.80
16.95
2.35
3.70
12.50
16.95
11.25
3.05
4.30
2.10
1.75
1.45
100
1.25
1.50
3.95
1.10
2.60
1.00
1.15
3.25
2.69
16.50
2.00
3.25
11.95
16.50
10.25
2.85
4.25
1.90
1.60
1.30
KEYBOARD CHIPS
AY5-2376
13.95
AY5-3600
13.95
UART'S
AY5-1013A
5.50
AY5-1014A
8.95
TR-1602A
5.50
TMS-601 1
6.95
IM-6402
10.80
IM-6403
10.80
FLOPPY DISC CONTROLLER
55.95
59.95
1771B
17718-01
SHIFT REGISTERS STATIC
25188
2533V
TMS3002
TMS3112
MMS0S8
3.95
2.00
1.00
3.95
2.00
MISC. OTHER COMPONENTS
NH0025CN
NH0026CN
N8T20
N8T26
74367
DM8098
1488
1489
D-3207A
C-3404
1.70
2.50
3.50
2.45
.90
.90
1.95
1.95
2.00
3.95
P-3408A
5.00
P-4201
4.95
MM-5320
7.50
MM-5369
1.90
DM-8130
2.90
DM8131
2.75
DM-8831
2.50
DM-8833
2.50
DM-8835
2.50
SN74LS367
.90
SN74LS368
.90
KIM
KIM-1
6502
6520
6522
6530-002
6530-003
6530-004
6630-006
USRT
S-2350
WD16718
245.00
12.96
9.00
9.25
15.95
15.95
15.95
15.95
10.95
29.95
WAVEFORM GENERATOR
8038 4.00
MC4024 2.50
566 1.75
TV
Game Chip
TMSigSSNL
Now Only
$10.96
PerSci DISK AND CONTROLLER
Use the PerSci Disk and Controller now with the
Info 2000 Adapter for the S-100 Bus.
INFO 2000 "SPECIAL"
(includes Model 277 Dual Drive, Model 1070
Controller, Case with power supply and fan,
and cable) $2,150
Model 277 Dual Diskette Drive $1,130
Model 1070 Controller $740
Slimline case with power supply and fan $280
Adapter for the S-100 Bus (Kit) $120
JADE PARALLEL/SERIAL
INTERFACE KIT
$124.95 KIT
JADE
VIDEO INTERFACE KIT
$89.95 KIT
8K STATIC RAM BOARD
ASSEMBLED & TESTED
250ns.
350ns.
450ns.
i
199195
189.95
$169.95
* WILL WORK WITH NO FRONT PANEL
* FULL DOCUMENTATION
* FULLY BUFFERED
* S100 DESIGN
* ADEQUATELY BYPASSED
* LOW POWER SCHOTTKY SUPPORT IC S
KIT
250ns.
350ns.
450ns.
$169.95
$139.95
$129.95
IMSAI/ALTAIR
S-100
COMPATIBLE
jadeZSO
KIT
-with PROVISIONS for
ONBOARD 2708 and POWER ON JUMP
$135.00 EA.e""^'
$149.95 EA. i«""^'
BARE BOARD $35.00
IMSAI/ALTAIR
COMPATIBLE
S-100
JADE 8080 A KIT
- WITH EIGHT LEVEL VECTOR INTERRUPT
$110.00 KIT
BARE BOARD $36.00
Computer Products
5351 WEST 144th STREET
LAWNOALE, CALIFORNIA 90260
(213) 679-3313
RETAIL STORE HOURS M-F 9-7 SAT. 9-5
Discounts available at OEM quantities. Add $1.25
for shipping. California residents add 6% sales tax.
CATALOG FREE WITH $10.00 ORDER
MICROBES
Tiny Bugs in Previous MICRO
1:13 HYPERTAPE and ULTRATAPE
00E9 3700 Hz Pulse Duration = in
OOEB 2400 Hz Pulse Duration = I£
1:19 COMPUTER CONTROLLED RELAYS
Error in the Circuit Diagram. A
single 7404 inverter may not have
enough drive for two relays. Remove
connection between Pin 2 of Write
Mic Relay and Pin 2 of Write Remote
Relay. Connect 7404 Pin 9 to 7404
Pin 11 and connect 7404 Pin 10 to
Write Mic Relay Pin 2. Add a diode
between Pin 2 and Pin 1 of the Write
Mic Relay. Each relay is now driven
by an independent 7404 inverter.
2:22
i[£a3(3^(«)i
We have the KEM
KIM-1 Expansion Module
the easy way to expand your KIM-1
* Generates S-100 Bus
* Accepts 2708 EPROMs
* ASCn Keyboard port
* Mates the MVM-1024 Video Module
Write for complete info on the
KEM and MVM-1024 Video Module
A Riverside
rxr
ELECTRONIC DESIGN INC.
1700 NIAGARA STREET
BUFFALO, NEW YORK 14L'07
FANCY DATA TERMINAL Build this terminal using a CPU-1 a VDB-1
an ASCII keyboard, a TV set or monitor,
power supply etc. and a 2704 EPROM, pro-
grammed to handle scrolling, data input,
output, etc.
FDT-1 documentation includes EPROM pro-
gram listing, construction and operating
hints. Doc. only $5. ppd, Pre-programmed
EPROM available.
SS50 BUS PRODUCTS---BUILD YOUR 6502 AROUND A POPULAR BUS STRUCTURE
CPU-1 A CENTRAL PROCESSOR using the MOS TECHNOLOGY 6502 & 6530-004 TIM
MONITOR ROM, Can use crystal or RC clock (on board). Has current-loop or RS232
I/O lines plus 8 general purpose I/O lines and 2 handshake lines. Board has provisions
for a 2704/8 or 2716 for program or subroutine storage. EPROM can control startup
from reset if desired. Use with SWTPC or equiv. memory or VDB-1 to form a com-
plete system. SS50 Bus compatible. Bare board and documentation $29. Doc, only $5,
VDB-1 A 32 character x 16 line video display generator. 2 pages of display possible.
Provisions for RF modvilator. On board memory, regulation, optional inverters. See
Nov. '76 BYTE article by A.I. Anderson for circuit description. Plugs into SWTPC or
equiv. SS50 Bus. Bare board and documentation $29, 00. Documentation only $5,00
SPECIAL CPU-1 & Doc. , VDB-1 & Doc. , FDT-1 Doc. ALL FOR $55. 00
Add $2. 50 Per Order S/H. Ohio residents add 4%. Doc. price refundable with order.
F&D ASSOCIATES, Box 183, New Plymouth, Ohio 45654
^
The Challenge of the OSI Challenger
Joel Henkel
Old County Road
Hillsborough, NH 03244
One of the factors that a purchaser of a micro-
computer system must consider is the degree of
"do it yourself" hardware and software effort he
will have to exert to get his system doing what
he wants. This effort, not evident from manu-
facturers' literature, can be critical for user
satisfaction, as became evident in our experience
with the OSI Challenger. These notes evaluating
the Challenger may be helpful to prospective
purchasers.
In any hobby industry, user skills are assumed.
This is emphasized for microcomputer firms that
formerly catered to electronic kit builders. OSI
is one of these, having supplied special PC board
kits to hams. They follow their own packaging
philosophy that differs from the "standard"
S-100 bus configuration. Their brochure ex-
plains that the 100 pin S-100 connectors were
rejected because the fingers were subject to poor
contact. Instead, OSI uses MOLEX connectors,
which make positive contact. The brochure goes
on to describe the rejection of on-board voltage
regulators in favor of a self contained regulated
power supply.
OSI circuit boards are larger than standard S-100
bus boards. This accommodates their design
philosophy of packing many optional functions
into one foil pattern. For example, their 430B I/O
board supports: an eight channel multiplexed
eight bit analog to digital converter, two chan-
nels of eight bit digital to analog conversion and
a UART controlled cassette I/O interface or an
RS232/twenty mil loop I/O interface.
Our system came without keyboard or video
monitor. Interfacing for these is left to the user.
The computer cabinet has two holes in its rear
panel for user implemented I/O cabling from
individual boards. The keyboard DIP socket and
video output RCA connector are available at the
edge of the 440 video board. MOLEX connectors
on the edge of the 430 board provides access to
the various I/O options.
Hardware documentation consists of kit con-
struction manuals for individual boards, even if
the boards are purchased assembled. Various
options are treated separately. Overall hardware
system documentation is completely lacking.
For example, nowhere is there a description of
the bus convention and pinout. One must gen-
erate these from actual inspection of board foil
patterns. This exercise reveals interesting peculi-
arities, such as bringing the NMI (non-maskable
interrupt line) and IRQ (interrupt request line)
onto many boards and leaving them unconnected.
The software is sophisticated. One enters the
system by resetting. A prompter, D/M, comes up
on the video screen. To enter the video monitor,
styled after the KIM, enter M and the six hex
digits appear near the top of the screen. For
DOS (disc operating system), enter D and the
DOS is brought up through BASIC by a boot-
strap ROM. (Earlier versions required loading a
short sequence of memory locations using the
video monitor.) From BASIC one can enter the
DOS, from which it is possible to go to various
modules, such as an extended monitor, back to
BASIC, or to activate a few DOS commands,
such as loading and recalling disc files, executing
programs, or switching floppy disc drives (for
dual floppy discs). The EXTENDED BASIC by
MICROSOFT has many advanced features, such
as string functions, and is apparently much
faster than a comparable 8080 BASIC.
Software documentation is poorly organized.
Perhaps with so many possible options, the job
of creating well organized system documenta-
tion was beyond OSI 's capability. Our experience
with software documentation availability was
sobering. The system comes with all OSI soft-
ware on discette. However, only a BASIC users
manual is included, beyond a general system
description. One has to order software user
manuals separately. We waited a long five
months after order for ours.
We have used two versions of the DOS, an ori-
ginal 1.1 version and an updated 2.0 version.
One interesting change has to do with copying
the DOS itself. The original version could not be
copied and an explicit notice to that effect was
included. An unfortunate set of circumstances
could come about, however, that would wipe
out track one, completely disabling any further
loads of the DOS. If computer power fails (or
one turns off the computer) with the disc in its
drive, out goes track one! Apparently a number
\
2:23
,^^(3[^(£)j
of users had this happen (including us). Version
2.0 has complete copying capability. According
to instructions the first thing one should do is
copy the DOS and store away one copy in case
of wipeout.
Another change from the original version is the
serial display output rate to the video monitor,
which was increased from ten characters per
second to several times that rate. A third change
in the DOS is an augmented facility to read and
write disc files.
The 440 board video display format chosen is
twenty four characters per line, which is too
small. One can only speculate on the reason for
the short line.
Many applications could readily use a real time
operating system, (RTOS). OSI does not offer a
RTOS, but has advertised that one, modelled on
DEC'S RTSll is in the works. When contacted
recently, however, OSI reported that it has in-
definitely postponed development of its RTOS
in favor of development of a business system.
The contemplated RTOS may explain the inter-
rupt lines found in the foil patterns of several
boards mentioned earlier, and a foU pattern
option on the 470 floppy disc controller board,
a real time clock in the form of a divider chain
driven by the on-board crystal clock.
In summary, the OSI Challenger offers a lot of
computer for the money. The tradeoff is the
board orientation rather than system orienta-
tion, requiring a larger than average effort on
the part of the user to bring his system up. This
effort includes I/O interface cabling and "reading
between the lines" in the supporting documenta-
tion.
^
2:24
il^3(S^(£)i
cyVLicro -Computer
R^epairs !
all nQakes^alLnoocDeLs
ReasonaBle Rates
open noon-loprri
man. - sat.
the COnPUTEK DOCTOK/mc
'12 MOWAKD STo, CAM5KIDQE~MA55.,02139
[617] 661 -<5 792
^
Improving KIM-1 Keyboard Reliability
KIM Application Note
MOS Technology
950 Rittenhouse Road
Norristown, PA 19401
The keyboard on some KIM-1 's has a "bouncy"
key problem and the "9," "D," or "C" keys
may fail entirely. The problem is due to the use
of the outer edge of the snap-action discs to
jump over the center contact line on the key-
board pc. Since the discs are only held against
the pc board with tape, the contact is poor.
There are five of these jump-overs in series for
the "C" key (four for the "9" key), thereby
compounding the problem. To check for the
problem, measure the resistance from keyboard
pin 3 to pin 1 5 (numbered from left to right as
shown) with the "C" key depressed. It should
be less than about 10 ohms.
Fortunately, this problem can be easily correct-
ed. The solution is to solder a thin wire jumper
across these poor contacts as follows. Disassemble
the keyboard by first removing the four screws
on the back of the keyboard at the comers.
Then remove the two remaining screws that hold
the keyboard to the KIM-1 (note for reassembly
that they are longer), being careful not to pull
the keyboard pc board away from the KIM-1
board - it's only attached by the solder at one
end. With the KIM-1 upside down, separate the
black keyboard panel from the keyboard pc
board. You may wish to cover the keyboard
with masking tape to hold the keys in place.
After cutting four small holes through the clear
Mylar at the locations indicated by an X in the
figure, the lines from "C" to "9," "D" to "9,"
"A" to "7" and the line to "B" are exposed.
Connecting these points by soldering a thin
wire between them routed as shown is suffi-
cient to bridge the five potentially poor con-
tacts.
— r— T — r-
9 O O t
>» .'« ,;» .'•'
e e
/ 3 J 7
e, e o e
9 II li IS
@ @
© @
® @
® ©
©, ®
® ©
(D @
®i ®
© ©
© ®
® ®
® ®
2:25
l^3(S^(l)i
MICRO is published bi-monthly, six issues per year. Subscriptions $6.00 (USA).
Subscription starts with next issue. Back issues are $1.50 each (Nos. 1 & 2]
Rv
NAME:
ADDR:
CITY: STATE:
ZIP:
[] Please include my name and address in mailing lists that you make available
to dealers, suppliers, and other legitimate 6502 interests so that I may be
kept informed of new products, current developments, and so forth.
[ ] Please DO NOT include my neime and address in mailing lists that are made
available to outside sources.
^
Send your check to: MICRO, P.O. Box 3, S Chelmsford, MA 01824
i^3(3^(>)i
COMPUTER
SHOP
288 NORFOLK ST. CAMBRIDGE, MASS. 02139
corner of Hampshire & Norfolk St. 617-661-2670
r
MEMORY
4 K MEMORY BOARDS THAT CAN BE USED FOR YOUR KIM
The VF8 4K memory boards have dual 22 pin .156 pinouts
but with different pin assignments than your KIM. Instruc-
tions for jumpering between connectors are included.
This board has been used as modified bv many KIM owners
FULLY ASSEMBLED AND TESTED REG. PWR. $129.00 '
LOW POWER RAM ADD............ $ 10.00
KIT .....$ 74.50
jm, w^mmi^ full set sockets for kit j% lo.oo
W 5P VF8 MOTHERBOARD-BUFFERED FOR 4 BDS. $ 65.00
CONNECTOR ASSEMBLY- KIM TO VF8 $ 20.00
CS lOOVIDEO TERMINAL BOARD FOR YOUR KIM
The CSlOO VIDEO TERMINAL BOARD IS A 16 LINE ^^iiajii".
BY 64 CHARACTER DISPLAY GENERATOR WITH SH»§^
CURSOR CONTROL AND EDITING Connect a 5V. ^ra^&=^
ASCII Keyboard to it, a Regulated 5 Volt, Unregulat-
8 Volts, or 8 Volts AC, and your KIM Teletypep ort
to it along with a video monitor and away you go with
all the convenience of a Video Terminal on your KIM.
The CSlDO-KIM is a fully enclosed portable cabinet
that has cutouts for the KIM keyboard and hex dis-
play. Space is provided for your cassette recorder
ASCII Keyboard, power supply, and extra memory
boards. The display shown was generated by our
Video Terminal Board connected to the KIM.
The cabinet is heavy duty l/,e inch aluminum fin-
ished in a blue spatter with white panels. An S]DO
low profile e 3 slot motherboard is available that
fits under the KIM is available
CSlOO Cabinet cut out for KIM $ 129. 00( )
3 Connector SlDO MB Assem. $ 75.00( )
VF8 4K Memory Board Assm. S 129. 00( )
V.F8 4K Ram Kit $ 74.50( )
Low Power 21D2 Option S 10.00( )
Socket Option......... .......$ 10.00( )
.......... V.F8 Motherboard $ 65.00(
Connector Board......... S 20.00(
CSIDO TIM Kit S 129. 95(
■•••••..•. CSlOO 6502 CPU Kit. ..........$ 169. 95(
CSlOO Front Panel Kit......... $ 129. 95(
CS1D0-VT3 Vid. Term. Bd.KitS 155.00(
••••••"•• CSIDO-VTB Vid. Term. Bd.Asr$ 185.00(
KIM-l-i;. -5 245.0D(
........ Total of Order ...........$.....
Mass. Res. Sales Tax...... .....$....
Shipg. 1% (S2.00 minimum)... ..$
Total Remittance or Charge.. ..$ ^
BAC,VISA,MC NO.
SIGNATURE........
NAME......
ADDRESS............
CITY....
• STATE... ...... ZIP....
^^^mmmm^mii^mmmmmmimm^mmm^s^smiif^
a3^K»ia«vs«.««'-^«^-SJSe&«S*Sra.
WilU^ ft. DUl
iOuron, tm 44320
OQBF
OOID
oon
0012
00F3
^F4
0OF5
00F6
0OP7
OOfB
OOW
OOFA
OOFB
OOFC
00F&
OOFE
OQFF
Fa
FGB
F (FBE6)
8F (stmm
A (ACC)
Y
X
IBL .
US
POIHIL
FODtlH
18KP
SffX
CSAR
MODE
^ogr«ti GotmMr - lo tjf
Zi^t liiftiir, Bi • Ol^lay Buffer
,FtrlaiMr^ in - Display
;-• fd^^chisin^r j-i«<i^a«%- iyu
llgrtft :]^4ii««$ai ]Q(»> or TTf Mdd* on KIM
Sttt **OQf* for Binary
Froetuor Status Spgistsr ? (OGFi)
rugs (1 >» >ifctf)
,6nrzy
^SWSiSf'SJS^WKfJSSgifeH^ew-J
>.'^^;:^^-^i!f'mmm»fi&'u^miw^^fS»mmf^f^
i I/O Por£«, laUfV^l-
1700
PAP
170X
nm
1702
PBS
1703
PKI]>
1704 / 1744 ClXn
1705
1741 <a^t6^
1706
1746 GtM&l
1707
1747 OXl^
1707
1747 CUdB^X
1706
1746 cuasa
170C
174C IT
170D
174» « ' -
170E
1748 *Kr "^
170J
Itif ioa4»
1740
«lk&
1741
«a«r^
1742
iiB&
1743
-- wm^ii
1780
17E7
Gsn,
17B8
17E9
ma'-'-'
17EA
17EB
17EC
w©- ^-'
17F2
€Hti:» 3<
17P3
JOBS S(
17F4
TBai
17F5
«ttL ^^
17F6
sm
17P7
SAL
17P8
»»
17F9
IB • *->,.
i7m/m$iLWiv ma
tBftWBB OSSBi
ic/fffc I8W <iaa
Pi)/nFV& CK^
lE/UVS Ul^.-^ISilJ
mfnw itm
•
" :..-
♦•^^^^^•^Ptw'
«tCf,>
t^^
' iv-„
?S!«®!*SW«s-?SS?«««a
'a
' **;x f f^^^'^- ^
'-■.^
^t^m^m^^m^mmmsss^>mmmm»mymmmssmm
SUB-SODXniBS
, - ^S^M»$
4ddt«M
I|i*^' '
1800
WUBt
1373
wm
1932
isfWi
194C
4sass -;'- '
195B
196F
i97A
vam
199E
ONE
19&4
ZBO
19SA
WGfSB
19P3
mam
lAOO
next
1A24
WQ3SI
UM.
lAfiB
ISXlt
fSA^CAt
icoo ^^n
1C22
1^
1C2A
• «Et<il^
lC4y
suax
ICOC
vcsm
1C64
CUUA
1G6A
ua>
1C77
TTfO
"^"^'"f FT?''^*Jf ?^*?"*' ■^"''
%- tav
fJi-j-S - "*>■*
■ l li wgy to tmip*
■'s« ■"
^06^p$^'''i)m|Ji^rt*
.$tt!^lWEf,|fe«'^iftNp»-.?!*^4f :<9 p«l«M '13t ll^iwc f«cW . 5 •■ -
#it^4.|»J%i^ <6 ^«w 207/|,»*e ntiHk)
■it, 2
,,..^liM^i(!|liir>^^^ 1 to .ASH G&4>
Jr^' -^"-^ "^""^ ?^^ x^'fe- "" ^: - "'■'^ ^ -■ '
-V/^yU;
tm)
-'->"
^■icl».
^ilir'ltlt''^teMit)
» 1^^I^J®?^^9^" *3r^^^^F^^^^ SIMrP^^P^f^P^ M '*^'"^WW^^ ^**" W*^ *-^f^B™fl(^
*-'«Se.'S®i-S«s»»«,«98a!i»S»»«««nRr*--,
J^
«sws*^{c=i«!»>j"^ J '-arft 1
^g^mmsi^0msmm^mmim»f-^m^^^nmi^.mw0i^m^!mi!i*smav'
%-ii»'^t:-^M.^Smii^->-^Sm0-»-SirrtSfmimriSZ.i-g::!^^
^
Addrass
OOEF
OOFO
OOFl
00F2
00F3
OOFii
OOFS
0OF6
00 F7
00F8
00 F9
OOFA
00 FB
OOFC
00 FD
00 FE
OOFF
Label
FCL
PCH
F (PREG)
SP (SPUSEft)
A {AGO
Y
X
CHKHI
CHKSUM
INL
INH
POINTL
POtNTH
TEMP
TMPX
CHAR
MODE
Important Addresses of KlM-1 and Monitor
William R- Dial
438 Roalyn Avenue
Akron, OH 4^320
FUTlCtlCUl
PrograiB Coumtei: - Lo Byte
Program Counter - Hi Byte
Status Register of Processor
Stack Polluter
Accumulator
Y-Begister
X-Reglster
CheckeuH! on Tape, Bi
Checksum on Tape, Lo
Input Buffer t Lo - Display Buffer
Input Buffet, Hi - Display Buffer
Pointer, Lo - Display
Pointer, Hi - Display
Temporary Storage Byte
Teinporary Storage Byte
Current Character for TTY
Byte Indicating KYBD or ITY Mode on KIM
Set "00" for Binary
Detail of Processor Status Register P (OOFl)
ait No. 2 1 5
K V
4
3 2
1
B
3 I
Z
C
1
Fla^s (1 « set)
-Carry
. Zero Result
Interrupt Disable
-Deciioal Mode
Break Coicmand
Reserved for Expansion
Overflow
Negative Result
OlFF
OlFE
01F8 etc.
• ■ ■ ■ r
STACK
Needed to Process Interrupts, save Addresses, etCi
2:27
J
I/O Forts, Interval Timers, and 6530 RAM Usage
Function
Address
Label
1700
PAD
1701
PADD
1702
PSD
1703
PBDD
1704 / 1744 CLKIT
1705 1745 CLKBT
1706 1746 CLK64T
1707 1747 CLK1024T
1707 1747 CLKRDI
1706 1746 CLKEDT
170C
170D
170E
170F
1740
1741
1742
1743
1780
17E7
i7Ee
17E9
17EA
17EB
17EC
17F2
17F3
17F4
17F5
17F6
17F7
17F8
17F9
174C IT
174D 8T
174E 64T
174F 1024T
SAD
PABD (SADD)
SBD
PBDD (SBDD)
CHKL
CHKH
SAVX
VEB
CNTL 30
CKTH 30
TIMU
SAL
SAH
EAL
EAH
ID
Output)
Input)
Port A Data (user 1/0)
Port A Data Direction {1
Port B Data (User 1/0)
Port B Data Direction (0
INTERVAL TIMER
17D4 et seq User
1744 et seq KIM MONITOR
Read Tlsie Out Bit
Read Time
TIMES USED vhen IRQ Interrupt at PB7 needed
i
Port A Data
Part A Data
Port B Data
Port B Data
(KIM ICKITOR)
Blrectlon
(KIM mNlTOR)
Directian
Available iteiHory Block (Prograsi PLEASE ^ etc.)
Checksum for Tape Monitor
Storage Location
rt
Volatile Execution Block
TTY Delay
TTY Delay
Starting Address - Lo (Audio and Paper Tape)
- HI
Ending Address • Lo
- Hi
ID Number (Program No. on Tape)
17FA/FFFA NMIV (NMII) Stop Vector (Stop = ICOO) Load 00
FB/FFFB (NMIH) IC
FC/FFFC RSTV (ESTL) RST Vector 00
FD/FFFD (ESTH) IC
FE/FFFE IRQV (IRQL) IRQ Vector (BJOC = I<X)0) 00
FF/FFFF (IRQH) IC
2:28
[£a[t(^l^^i
£N.
SUB-ROUTIHES - 6530-003
Label
Addresa
1800
1873
1932
194C
195E
196F
197A
199E
19C4
19KA
19F3
lAOO
1A24
1A41
1A6B
DUMPT
LOADT
INTV^
CHKT
OUTBTC
HEXOUT
OUTCHT
ONE
ZRO
INCVEB
ItDBYT
PACKT
RLGHT
BDBIT
PLLCAl
SUB-ROUTINES
- 6530-002
ICOO
SAVE
1C22
RST
1C2A
DETCPS
1C4F
STAKT
ICDC
PCCMD
1C64
CLEAR
1C6A
READ
1C77
TTYKB
FurtctlQD
Diaap Memory to Tape
Load Memory from Tape
Initiate Volatile Execution Block
CoBipute CHKSUM for Tape Load
Output One Byte
Convert LSD of A to ASCII and Output to Tape
Output to Tape One ASCII CHAR (Use Subs ONE & ZRO)
Output to Tape = 1 (9 pulses 138 ^ sec each)
Output to Tape (6 pulses 207 ^ sec each)
Sub to INC VEB + 1, 2
Sub to read Byte from Tape
Pack A = ASCII into SAVX as Hex Data
Get 1 Character froia Tape and Return with
Character in A (Use SAVX + 1 to ASM Oisr)
Gets one bit from Tape and returns It in
sign of A
Diagnostics ; PLL calibrate Output, 166^ sec
pulse string
KIM Entry vis STOP (NMl) or BRK (IRQ)
Also SST
KIM Entry via RST (Reset)
Count Start Bit
Make TTY/KB Selection
Display Progrem Counter by Moving PC to POIHT
Clear Input Buffer INL, IKH
Get Character
Main Routine for Keyboard and Display
2:29
Address
1ED4
lEEB
lEFE
1F19
IFIF
iFAe
ir63
1F6A
1F91
1F9D
IFAC
1FD5
1FE.7
Label
1CE7
LOAD
1D42
hmp
lElE
PRTPNT
1E2F
CRLF
1E3B
PRTBYT
1E5A
GEICH
1E88
INITS
1E9E
OUTSF
DELAY
DEHALF
AK
SCAND
SCAJTDS (DISPLA)
CONVD
IMCPT
GETKEY
CHK
GETBYT
PACK
TOP
TABLE
^
Function
Load Paper Tape from TTY
Duimp to TTY from Open Cell Address to LIMHL,
LlbGlH Limit: High , H and L
Sub to Print FOINIL, POINTH
Print String of ASCII Chsractets from
TOP + X CO TOP
Priot 1 Hex Byte as Two ASCII Qiaracters
Get I Character from TTY, Return from Sub with
Char In A. X ie preserved and Y returned = FF,
Initialization for SIGMA
Print One Character CHAR = A.
X is preserved, Y returned = P7.
OUTSP Prints One Space .
This loop simulates DETCPS Section and will
delay 1 Bit Time.
Delay half Bit Tine - Double right shift of
Delay Constant for a Div by 2.
Sub to Determine if Key is depr«a.sed or
Condition of SSW
{Key not dep or TTY Mode A = 0)
(Key dep or KB Mode A = not aero)
Output to 7 Segment Display
Lights 7 Segment Display
Convert and Display Hex - Used hy ECAOT only
Sub to Increment POINT
Get Key from Keyboard, Return with A = Key
value. If A GT. than 15 then Illegal or no Key,
Sub to Compute Check Sum
Get 2 Hex Characters and Pack Into INL, INH.
X preserved, Y returned = 0,
Shift Character In A into IWL, INH
Table
Table Hex to 7 Segment
2:30
i
a
'mm^<iit
J